import {reqSearchGoodsInfoData} from '@/api'
const state = {
    goodsInfo:[],
    searchParams:{
        category1Id:'',	// 一级分类id
        category2Id:'', // 二级分类id
        category3Id:'',	// 三级分类id
        categoryName:'',// 分类的名称
        keyword:'',	// 关键词
        props:[],	// 商品属性
        trademark:'',	// 商品品牌
        order:"1:asc",	// 排序规则 '1:asc'：综合:升序 '2:desc' 价格:降序
        pageNo:1,	// 页码
        pageSize:5	// 每页显示条数
    }
};
const actions = {
    // 1.根据参数获取搜索数据
    async getSearchGoodsInfoData({commit},searchParams){
        const res = await reqSearchGoodsInfoData(searchParams);
        if(res.code===200){
            commit('SAVE_SEARCH_GOODS_INFO_DATA',res.data)
        }
    }
}
const mutations = {
    // 储存搜索到的商品
    SAVE_SEARCH_GOODS_INFO_DATA(state,goodsInfo){
        state.goodsInfo = goodsInfo
    },
    changeOrder(state,newVal){
        let [oldVal,oldDirect] = state.searchParams.order.split(':');
        if (newVal == oldVal) {
            // 点击的是同一个 则只改变箭头指向
            oldDirect = oldDirect === 'asc' ? 'desc':'asc'
        } else {
            // 如果点击的不是同一个 则改变 1 2 的值就行
            oldVal = newVal
        }
        // 重新拼接
        state.searchParams.order = `${oldVal}:${oldDirect}`
        // 重新从第一页开始
        state.searchParams.pageNo = 1;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
    }
};
const getters = {
    // 因为数据层级过多，精简获取state数组中的各项列表数据
    // 1.属性列表
    attrsList(state){
        return state.goodsInfo.attrsList
    },

    // 2.商品列表
    goodsList(state){
        return state.goodsInfo.goodsList
    },

    // 3.商品品牌列表
    trademarkList(state){
        return state.goodsInfo.trademarkList
    },
    total(state){
        return state.goodsInfo.total
    }
};

export default{
    namespaced:true,
    state,
    actions,
    mutations,
    getters
}
